<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Document</title>
  </head>
  <body>
    <!--
      1.在某些情景下,你可能希望限制某些属性和方法的暴露程度,使他们不能通过对象实例本身访问,修改和调用.许多传统的语言可以将属性和方法定义为公有,私有或者受保护.私有变量或方法在类定义之外不能呗进行读写;受保护的变量不能呗直接访问;但可以通过一个包装方法对其读写.在JS中并没有具体的语法来定义私有或者受保护的变量和方法,,从而限制属性和变量的访问
      2.在构造函数中通过定义var定义的比变量其作用域限于该构造函数内----在prototype上定义的方法无法访问这个变量,因此这些方法有其自己的作用域.想要通过公有的方法来访问私有变量,需要创建一个包含两个作用域的新作用域,想要通过公有的方法来访问私有变量,需要创建两个作用域。为此，我们可以创建一个自我执行的函数，称为闭包。代码如下。
      3.sJavaScript有一个非强制的但很有用的编程惯例，就是对所以私有变量或函数名加一个下划线（_）作为前缀，以标识他们是私有的.
    -->
    <script>
        
    </script>
  </body>
</html>
